Conversation
|
Minimum allowed coverage is Generated by 🐒 cobertura-action against 77ebc55 |
8622118 to
dc21675
Compare
CMAKE_LIBRARY_ARCHITECTURE fixes the issue where system libraries weren't being found. Eg: "SDL_X11 (Wanted: ON): ON" was OFF without this setting. Eg: "Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so " was a not found error without this setting. I removed the pkg-config settings since they didn't seem to do anything and I couldn't figure out if they were correct in the first place. I'm assuming CMake figures these out automatically (it should automatically find the host version of the pkg-config executable and I'm *assuming* (please verify) it uses the CMAKE_LIBRARY_ARCHITECTURE variable to figure out which set of .pc files to use).
x64/amd64 is handled the same way for consistency.
…x package resolution issues
|
Some of the native library builds modified in this PR were not referenced in the PR description. Please ensure that the PR description contains |
This is because it otherwise gets confusing in the "run project" dropdown.
Exanite
left a comment
There was a problem hiding this comment.
Self code review complete. My review comments mainly explain why the changes were made. I didn't make an effort to comment how the code works this time though. This is because I want to rework this setup eventually.
| set(PKG_CONFIG_EXECUTABLE "/usr/bin/${ZIG_ARCH}-${ZIG_OS}-${LINUX_ABI}-pkg-config") | ||
| set(ENV{PKG_CONFIG_LIBDIR} "/usr/lib/${ZIG_ARCH}-${ZIG_OS}-${LINUX_ABI}/pkgconfig") | ||
| set(ENV{PKG_CONFIG_PATH} "/usr/lib/pkgconfig:/usr/share/pkgconfig") | ||
| set(CMAKE_FIND_ROOT_PATH "/usr/${ZIG_ARCH}-${ZIG_OS}-${LINUX_ABI}") |
There was a problem hiding this comment.
This folder doesn't exist on Ubuntu and the include, lib, and bin folders instead have the following format:
/usr/bin/{target-triple}
/usr/include/{target-triple}
/usr/lib/{target-triple}
Setting CMAKE_LIBRARY_ARCHITECTURE lets CMake find these automatically.
There was a problem hiding this comment.
I prefixed the OpenAL example project name and folder name since it was confusing in the "run project" dropdown of Rider (and maybe other IDEs).
| git submodule update --init --recursive --depth 1 ..\..\..\eng\submodules\openal-soft | ||
| ) | ||
|
|
||
| call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" arm64 |
There was a problem hiding this comment.
arm64 seems to work when using MSVC, but breaks for Clang. Using amd64_arm64 specifies the host_target setting properly.
| rm -rf build | ||
| mkdir build | ||
| cd build | ||
| cmake ../../../../eng/submodules/sdl -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos "-DCMAKE_OSX_ARCHITECTURES=arm64;armv7s" -DCMAKE_OSX_DEPLOYMENT_TARGET=9.0 -DCMAKE_BUILD_TYPE=Release -DSDL_STATIC=ON |
There was a problem hiding this comment.
armv7s was breaking the build since Xcode doesn't support it anymore. Looking it up online also shows that armv7s is old and unsupported.
| mkdir build | ||
| cd build | ||
| cmake ../../../../eng/submodules/sdl -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos "-DCMAKE_OSX_ARCHITECTURES=arm64;armv7s" -DCMAKE_OSX_DEPLOYMENT_TARGET=9.0 -DCMAKE_BUILD_TYPE=Release -DSDL_STATIC=ON | ||
| cmake ../../../../eng/submodules/sdl -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos "-DCMAKE_OSX_ARCHITECTURES=arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET=9.0 -DCMAKE_BUILD_TYPE=Release -DSDL_STATIC=ON -DSDL_TEST_LIBRARY=OFF |
There was a problem hiding this comment.
DSDL_TEST_LIBRARY was defaulting to ON and led to some build issues on Linux x64. I've updated all the build scripts to consistently disable it.
| libxkbcommon-dev libdrm-dev libgbm-dev libgl1-mesa-dev libgles2-mesa-dev \ | ||
| libegl1-mesa-dev libdbus-1-dev libibus-1.0-dev libudev-dev fcitx-libs-dev \ | ||
| libpipewire-0.3-dev libwayland-dev libdecor-0-dev liburing-dev | ||
| pkg-config cmake ninja-build gnome-desktop-testing \ |
There was a problem hiding this comment.
These also specify :amd64 purely for consistency.
| Components: main restricted universe multiverse | ||
| Architectures: armhf | ||
| Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg | ||
| EOF |
There was a problem hiding this comment.
Don't believe there is an official way to modify the repo lists so I just use sed here to modify the existing sources file and tee to add a new one for the ports repos.
lsb_release avoids the need to hardcode the ubuntu release codename (currently noble).
| libegl1-mesa-dev libdbus-1-dev libibus-1.0-dev libudev-dev fcitx-libs-dev \ | ||
| libpipewire-0.3-dev libwayland-dev libdecor-0-dev liburing-dev | ||
| pkg-config cmake ninja-build gnome-desktop-testing \ | ||
| libglib2.0-dev-bin \ |
There was a problem hiding this comment.
Executables must use the host architecture, so they are unsuffixed.
Compile dependencies must use the target architecture, so they are suffixed (armhf in this case).
| Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "OpenAL", "OpenAL", "{662A1AEC-91F2-48FA-AA29-6F27038D30F2}" | ||
| EndProject | ||
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tutorial001.HelloSound", "examples\CSharp\OpenAL\Tutorial001.HelloSound\Tutorial001.HelloSound.csproj", "{946C912C-5BBB-446A-A566-0D1696D19F59}" | ||
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenAL.Tutorial001.HelloSound", "examples\CSharp\OpenAL\OpenAL.Tutorial001.HelloSound\OpenAL.Tutorial001.HelloSound.csproj", "{946C912C-5BBB-446A-A566-0D1696D19F59}" |
There was a problem hiding this comment.
I'll probably convert this .sln file to an .slnx file as my next PR and ensure that Nuke works with the new format (should work after updating Nuke).

Summary of the PR
This PR updates ClangSharp and SDL. This was originally part of #2567, but proved to be a more involved change than anticipated due to SDL build problems.
Related issues, Discord discussions, or proposals
Related PR: #2567
Further Comments
Tasks
Native builds
(Currently disabling this command by adding a space; the builds are already committed so there's no reason to run them again)
/ build-native SDL OpenAL-Soft